import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'
import store from "@/store"
Vue.use(VueRouter)

const routes = [{
  path: '/',
  redirect: '/home'
},
{
  path: '/home',
  name: 'home',
  component: Home
},
{
  path: '/goods',
  name: 'goods',
  component: () => import('../views/Goods.vue')
},
{
  path: '/user',
  name: 'user',
  component: () => import('../views/User.vue'),
  // redirect:"/user/cart",
  children: [{
    path: 'cart',
    component: () => import('../components/user/Cart.vue'),
  }]
  //独享路由守卫,只有访问到这路由才会触发
  // beforeEnter(to, from, next) {
  //   let token = localStorage.getItem("x-auth-token");
  //   if (token) {
  //     next()
  //   } else {
  //     store.dispatch('showToast/asyncIsshow', {
  //       isshow: true,
  //       msg: "还未登录",
  //       type: "danger",
  //     })
  //   }
  // }
},
{
  path: '/order',
  name: 'order',
  component: () => import('../views/Order.vue')
},
{
  path: '/free',
  name: 'free',
  component: () => import('../views/Free.vue')
},
{
  path: '/details',
  name: 'details',
  component: () => import('../views/Details.vue')
},
{
  path:'*',//无对应页面报404
  name: 'error',
  component: () => import('../components/Error')
}
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})
//全局路由守卫
// router.beforeEach((to, from, next) => {
//   if (to.path == "/user") {
//     let token = localStorage.getItem("x-auth-token");
//     if (token) {
//       next()
//     } else {
//       store.dispatch('showToast/asyncIsshow', {
//         isshow: true,
//         msg: "还未登录",
//         type: "danger",
//       })
//     }
//   } else {
//     // 如果用户未能验证身份，则 `next` 会被调用两次
//     next()
//   }

// })
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}
export default router